package net.realsee.domain.wcs.intf.bo;

import cn.hutool.core.util.ObjectUtil;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import net.realsee.common.enums.wcs.intf.InterfaceCodeEnum;

/**
 * 接口请求对象
 *
 * @author 孙正华
 * @since 2023/7/27 13:49
 */

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
public class InterfaceRequest {

    /**
     * 接口代码枚举
     */
    private InterfaceCodeEnum interfaceCode;

    /**
     * 头数据
     */
    private Object headerObj;

    /**
     * uri替换数据（替换url中{}内容）
     */
    private Object convertObj;

    /**
     * 表单数据
     */
    private Object paramObj;

    /**
     * post表单数据
     */
    private String bodyStr;

    /**
     * 是否记录日志
     */
    private Boolean isRecord;

    /**
     * 是否异步调用
     */
    private Boolean isAsync;

    /**
     * 任务ID/任务码
     */
    private String taskId;

    /**
     * 关键字1
     */
    private String keyword1;

    /**
     * 关键字2
     */
    private String keyword2;

    /**
     * 父任务ID
     */
    private String parTaskId;

    public Boolean isAsync() {
        return ObjectUtil.isNotNull(isAsync) && isAsync;
    }
}
